![]() ![]() |
OpenGL ジオメトリが表示されないOpenGL ジオメトリの一部が画面に描画されない原因は色々考えられますが、その中でも特に一般的なのが次の 2 つです。
ビューが真っ暗な場合は、カメラ全体が間違った方向を向いている可能性があります。通常これは、カメラの位置が z 軸上で前過ぎまたは後ろ過ぎの位置にあるか、カメラを間違ったビュー座標に向けていることが原因です。デフォルトのカメラ位置は(0.0, 0.0, 0.0)で、z 軸を負の方向に向いています。 QuickTime ムービーの出力QuickTime ムービーの出力として、OpenGL を使うには、QuickTime ムービーの各フレームを
各フレームをテクスチャとしてムービーから抽出したら、それを OpenGL のポリゴンに適用する必要があります。テクスチャの v 座標を反転させるか、逆の順序でロードしないと、ムービーが上下逆に再生されてしまいます。詳細については、アップルのデベロッパ・サイトにある「OpenGL Movie」のサンプル・コードを参照してください。 「ネイティブ」ピクセル形式ネイティブピクセル形式は、32 ビットの パックドピクセルの有効化パックドピクセルは、Macintosh では OpenGL 1.2 以上でサポートされています。これは、レンダラのバージョン文字列をチェックすることによって確認できます。エクステンションの "GL_APPLE_PACKED_PIXELS" を通じてパックドピクセルをサポートしているレンダラもあります(ATI ドライバによって戻される実際の文字列は "GL_APPLE_PACKED_PIXEL" である点に注意してください)。 ピクセル形式を選択したら、ピクセルが OpenGL を通じて、確実に指定の形式で渡されるように、'AGL_NO_RECOVERY' を使う必要があります。 以下に、OpenGL のピクセル形式に最適な選択肢を示します。
VBL 同期アプリケーションのフレームレートとモニタのリフレッシュレートの同期させる(VBL 同期)には、次のコードを使います。
これにより、フレームレートは、モニタの現在のリフレッシュレートの約数に固定されます。 ページフリップATI ドライバでは現在、RAGE 128 ベースのシステムで、遮られていないフルスクリーンのドローアブルのページフリップが可能です。ウィンドウモードのページフリップはサポートされていません。 ページフリップの利点は、ハードウェアとソフトウェアの技術の向上に伴って次第に小さくなってきています。最近のハードウェアでは VRAM から VRAM への blit 転送は非常に速いため、一般的に見られる速度の向上はせいぜい 1 秒に 2 〜 3 フレーム分です。 フレームの分裂一般に信じられていることとは逆に、フレームの分裂は同期化の問題であって、スワップの速度とは無関係です。電子ビームが画面で描画している間に、バッファがスワップされると、分裂が発生します。この問題は、VBL 同期で解決できるはずです。 DrawSprocket との OpenGL の使用次の URL で、フルスクリーンのサンプルを参照してください。 http://developer.apple.com/samplecode/Sample_Code/Graphics_3D/ OpenGL と QuickDraw の併用QuickDraw を使ってフロントバッファに描画するには、描画を OpenGL と同期させる必要があります。これにより、必然的に OpenGL パイプラインは停止します(パフォーマンスの理由からお勧めはしません)。 これは、 Mac OS 9 および OS X におけるバッファの割り当てMac OS 9 は、コンテキストごとにバッファを割り当てます。作成される次のコンテキストはそれぞれ、当該コンテキスト専用の、一連の独立したバッファを持ちます。 Mac OS 9 のハードウェアでは、ステンシルバッファ、AUX(補助)バッファ、アキュムレーションバッファはサポートされていません。 Mac OS X は、1 つのサーフェスごとにバッファを割り当てます。「サーフェス」は、Mac OS X ではドローアブルに相当します。Mac OS X では複数のコンテキストを作成し、それを単一のサーフェスにアタッチできます。指定のサーフェスで作成されたコンテキストは、すべて同じバッファセットを共有します。 また、Mac OS X は、AUX (補助)バッファと 8 ビットのステンシルバッファをサポートしています。Mac OS X のハードウェアでは、アキュムレーションバッファはサポートされていません。 今後の予定今後、取り組む予定の問題は次のとおりです。
参考文献OpenGL ARB OpenGL Programming Guide, 3rd Edition Addision-Wesley 刊 OpenGL ARB OpenGL Reference Manual, 3rd Edition Addision-Wesley 刊 Foley, van Dam, Feiner, Hughes 著 Computer Graphics - Principles and Practices Addision-Wesley 刊 ダウンロード
|